﻿            
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.Interfaces;
using Dados.ValueObjects;
using Dados.INFTURDataSetTableAdapters;


namespace Dados.ClassesSQLServer
{

    public class HotelSqlServer : IHotel
    {
        T_HOTELTableAdapter hotelTA = new T_HOTELTableAdapter();

        public int Insere(HotelVO hVO)
        {
            try
            {
                return hotelTA.Insert(hVO.Nome, hVO.Site, hVO.Telefone, hVO.Endereco, hVO.Email, hVO.Estrelas);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public int Atualiza(HotelVO hVO)
        {
            try
            {
                return hotelTA.Update(hVO.Nome, hVO.Site, hVO.Email,hVO.Telefone, hVO.Endereco,hVO.Estrelas,hVO.Id);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        public int Remove(int id)
        {
            try
            {
                return hotelTA.Delete(id);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        public HotelVO Consulta(int id )
        {
            try
            {
                HotelVO hVO = null;
                INFTURDataSet.T_HOTELDataTable dtHotel = hotelTA.GetHotelPorId(id);
                if (dtHotel.Count > 0)
                {
                    hVO = new HotelVO();
                    hVO.Nome = dtHotel[0].tx_nome;
                    hVO.Email = dtHotel[0].tx_email;
                    hVO.Endereco = dtHotel[0].tx_endereco;
                    hVO.Estrelas = dtHotel[0].nr_estrelas;
                    hVO.Telefone = dtHotel[0].tx_telefone;
                    hVO.Site = dtHotel[0].tx_site;
                    hVO.Id = dtHotel[0].nr_id;
                }
                return hVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
            
        
        public List<HotelVO> ConsultaTodos()
        {
            try
            {
                List<HotelVO> lcVO = new List<HotelVO>();
                INFTURDataSet.T_HOTELDataTable dt = hotelTA.GetData();


                foreach (INFTURDataSet.T_HOTELRow cRow in dt)
                {
                    HotelVO hVO = new HotelVO();
                    hVO.Id = cRow.nr_id;
                    hVO.Nome = cRow.tx_nome;
                    hVO.Endereco = cRow.tx_endereco;
                    hVO.Email = cRow.tx_email;
                    hVO.Telefone = cRow.tx_telefone;
                    hVO.Estrelas = cRow.nr_estrelas;
                    hVO.Site = cRow.tx_site;
                    lcVO.Add(hVO);
                    

                }
                return lcVO;
            }

            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
    }
}
         
